//
//  P1157.cpp
//  Algorithm
//
//  Created by 刘锦程 on 2023/9/9.
//

#include <stdio.h>
#include<iostream>
#include<cstdio>
using namespace std;
int n,r;
int book[21];
int o[23];
void dfs(int rk,int num){
    o[rk]=num;
    book[num]=1;
    if(rk==r){
        for(int j=1;j<=rk;j++){
            printf("%3d",o[j]);
           // o[j]=0;
        }
        cout<<endl;
        return;
    }else{
        for(int i=num+1;i<=n;i++){
            if(!book[i]&&i>o[rk]){
                dfs(rk+1,i);
                book[i]=0;
                
            }
        }
        
    }
}

int P1157ans(){
    cin>>n>>r;
    o[0]=0;
   // dfs(1,1);
    for(int i=1;i<=n-r+1;i++){
        dfs(1,i);
    }
    return 0;
}
